Computer networks continue to proliferate. As they do so, they become increasingly complex and difficult to manage. This problem is exacerbated when a variety of network devices, computers, and software are combined together to integrate large intranets with the Internet.
As shown in FIG. 1, a conventional network 100 includes one or more network devices 102 such as switches, routers, hubs, multiplexers and similar devices capable of processing fixed-length or variable-length packets in a network. Network devices 102 may further communicate with hosts 104 via a local area network, for example. Network manager 106 also communicates with network devices 102 via the network 100.
To manage the network 100, network manager 106 generally polls network devices 102 using protocols such as SNMP to access information in the device's management information base (MIB). The manager 106 thus needs to know all the MIBs supported by each device, which is especially problematic if the network includes devices of various different types or from various different manufacturers. Further, polling requires that the network manager send many messages of the same type to each device and continually over a period of time. This floods the network and can downgrade the network's performance, as well as burdening the network manager 106 with highly repetitive and duplicative tasks.
Moreover, the forwarding and control capabilities of conventional network device 102 are also statically constrained by the routing software and control software pre-loaded on the device 102. Although many conventional devices include means for effecting software updates (for example, by downloading software via FTP), such updates must be carefully performed and monitored for each device in the network, usually manually by the network manager 106. Such updates require much manager intervention, are risky to perform, require de-commissioning the device during updating, and require a period of verification after updating, thus making network management and performance even more problematic. Further, although some updates may only affect certain individual modules, generally the whole code has to be swapped out to install the updated modules, rather than just the updated modules themselves.